package day12;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.atomic.AtomicInteger;

//测试单线程池
public class TestSingle {
    static volatile int num=100; //总票数100
    public static void main(String[] args) {
        //1.创建
        ExecutorService es=
                Executors.newSingleThreadExecutor();
        //2.执行
        //es.execute(Runnable);//void
        //es.submit(Callable或Runnable);//Future获取call()返回值
        for(int i=0;i<1000;i++) {
            es.execute(() -> {
                String name=Thread.currentThread().getName();
                num--;
                System.out.println(name+"售出了第"
                        +(100-num)+"章,剩余:"+num);
                if(num==0) es.shutdownNow();
            });
        }
        //3.关闭
        //关闭线程池, 如果里面已经添加的任务 还会执行
        //(不会再执行execute()添加任务了)
        //es.shutdown();
        //关闭线程池, 立即关闭池 凡是没有执行的任务 则不会执行
        //es.shutdownNow();
    }
}
